#include<iostream>
#include<cstring>
/*
设计一个 BankAccount 类，包含以下功能：
1. 属性：
账户名（ string ）
余额（ double ）
2. 方法：
构造函数：初始化账户名和余额，余额默认为 0。
void deposit(double amount) ：存款。
void withdraw(double amount) ：取款，余额不足时提示错误。
void display() ：显示账户名和余额。
编写一个主程序，模拟用户进行存款和取款操作，并显示余额。*/
class bankaccount
{
private:
    char m_name[20];
    double m_money;
public:
    void SetName(const char* name);
    void SetAccount(int money);
    void deposit(double amount);
    void withdraw(double amount);
    void display();
};

void bankaccount::SetName(const char *name)
{
    strcpy(m_name,name);
}

void bankaccount::SetAccount(int money)
{
    m_money=money;
}

void bankaccount::deposit(double amount)
{
    m_money+=amount;
}

void bankaccount::withdraw(double amount)
{
    m_money-=amount;
    if(m_money<0)
    {
        std::cout<<"余额不足,无法取款"<<std::endl;
        m_money+=amount;
    }
}

void bankaccount::display()
{
    std::cout<<"姓名: "<<m_name<<"\n"<<"余额: "<<m_money<<std::endl;
}

int main()
{
    double amount=0.00;
    bankaccount b;
    b.SetName("王五");
    b.SetAccount(0.00);
    b.display();

    std::cout<<"你要存多少钱？"<<std::endl;
    std::cin>>amount;
    b.deposit(amount);
    b.display();

    std::cout<<"你要取多少钱？"<<std::endl;
    std::cin>>amount;
    b.withdraw(amount);
    b.display();
    return 0;
}
